<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>33 Class</title>
</head>

<body>
    <h2>2.15. class类</h2>
    <p>
        ES6提供了更接近传统语言的写法, 引入了 Class（类）这个概念, 作为对象的模板。通过class关键字, 可以定义类。基本上, ES6的class可以看作只是一个语法糖, 它的绝大部分功能, ES5都可以做到,
        新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。</p>
    <p>知识点:</p>
    <ul>
        <li> class声明类</li>
        <li> constructor定义构造函数初始化</li>
        <li> extends继承父类</li>
        <li> super调用父级构造方法</li>
        <li> static定义静态方法和属性</li>
        <li> 父类方法可以重写</li>
    </ul>

    <script>
        //手机
        // // ES5
        // function Phone(brand, price) {
        //     this.brand = brand;
        //     this.price = price;
        // }

        // // 添加方法
        // Phone.prototype.call = function () {
        //     console.log('I can tel');
        // }

        // let hw = new Phone('hw', 5999);
        // hw.call();
        // console.log(hw);

        class Shouji {
            constructor(brand, price) {
                this.brand = brand;
                this.price = price;
            }

            call() {
                console.log('I can tel');
            }
        }

        let oneplus = new Shouji('oneplus', 1999);
        oneplus.call();
        console.log(oneplus);

    </script>
</body>

</html>